package com.android.support.lib.universal.util;

import android.content.Context;
import android.telephony.TelephonyManager;

public class UtilSMS {
	private Context context;
	TelephonyManager telephonyManager;
	String number;// 手机号
	String imsi;// 手机号唯一编码
	String imei;// 手机的唯一识别号码
	String imei_15;// 15位手机的唯一识别号码
	String providerName;// 中国移动，中国联通，中国电信

	public UtilSMS(Context context) {
		super();
		this.context = context;
		telephonyManager = (TelephonyManager) context
				.getSystemService(Context.TELEPHONY_SERVICE);
	}

	/**
	 * 获取手机号码(不一定获取成功)
	 * 
	 * @return
	 */
	public String getNumber() {
		if (number == null) {
			number = telephonyManager.getLine1Number();
		}
		return number;
	}

	/**
	 * 当前手机卡唯一编码
	 * 
	 * @return
	 */
	public String getImsi() {
		imsi = telephonyManager.getSubscriberId();
		return imsi;
	}

	/**
	 * 手机的唯一识别号码即手机串号(15位)
	 * 
	 * @return
	 */
	public String getImei() {
		imei = telephonyManager.getSimSerialNumber();
		return imei;
	}

	public String getImei_15() {
		imei_15 = telephonyManager.getSimSerialNumber();
		if (imei_15 != null && imei_15.length() >= 15) {
			imei_15 = imei_15
					.substring(imei_15.length() - 15, imei_15.length());
		}
		return imei_15;
	}

	/**
	 * 获取当前运营商
	 * 
	 * @return
	 */
	public String getProviderName() {
		if (providerName == null) {
			String IMSI = getImsi();
			if (IMSI != null && IMSI.length() >= 5) {
				if (IMSI.startsWith("46000") || IMSI.startsWith("46002")) {
					providerName = "中国移动";
				} else if (IMSI.startsWith("46001")) {
					providerName = "中国联通";
				} else if (IMSI.startsWith("46003")) {
					providerName = "中国电信";
				}
			}
		}
		return providerName;
	}

	/**
	 * 判断是否为电信
	 * 
	 * @return
	 */
	public Boolean isTelecom() {
		if (providerName == null) {
			String IMSI = getImsi();
			if (IMSI != null && IMSI.length() >= 5) {
				if (IMSI.startsWith("46000") || IMSI.startsWith("46002")) {
					providerName = "中国移动";
				} else if (IMSI.startsWith("46001")) {
					providerName = "中国联通";
				} else if (IMSI.startsWith("46003")) {
					return true;
				}
			}
		}
		return false;
	}

}
